import {vnode} from './vnode'

/**
 * 只支持三个参数都传，第三个参数可以是 string、[vnode]、vnode 之一，不支持 svg
 */
export function h(sel,data,c){
    if(arguments.length !== 3){
        throw new Error('参数个数有误')
    }
    // 判断第三参数类型
    if(typeof c === 'string' || typeof c === 'number'){
        return vnode(sel, data,[],c,undefined)
    }
    if(Array.isArray(c)){
        const children = []
        c.forEach(item=>{
            if(typeof item === 'object' && item.hasOwnProperty('sel')){
                children.push(item)
            }
        })
        return vnode(sel,data,children,undefined,undefined)
    }
    if(typeof c === 'object' && c.hasOwnProperty('sel')){
        return vnode(sel,data,[c],undefined,undefined)
    }
}